package com.algorithm.generalalgorithm;

import java.util.Arrays;

/**
 * @author liyanhao
 * @Date 2023-03-01 16:34
 * 冒泡排序
 * <p>
 * 1 比较前后相邻的二个数据，如果前面数据大于后面的数据，就将这二个数据交换。
 * 2 这样对数组的第 0 个数据到 N-1 个数据进行一次遍历后，最大的一个数据就“沉”到数组第 N-1 个位置。
 * 3 N=N-1，如果 N 不为 0 就重复前面二步，否则排序完成。
 */
public class BubbleSort {
    public static void main(String[] args) {
        int[] arr = {1, 22, 4, 65, 78, 190, 123, 34};
        bubbleSort(arr);
        System.out.println(Arrays.toString(arr));
    }

    public static void bubbleSort(int[] arr) {
        for (int i = 0; i < arr.length; i++) {
            for (int j = i; j < arr.length - i; j++) {
                if (arr[j - 1] > arr[j]) {
                    int tmp = arr[j - 1];
                    arr[j - 1] = arr[j];
                    arr[j] = tmp;
                }
            }
        }
    }
}
